A dynamic system (either natural or man-made) is a system whose response at any given time is a function of its input stimuli, its current state, and the current time. Such systems range from simple to highly complex systems. Physical dynamic systems include a falling body, the rotating earth, bio-mechanical systems (muscles, joints, etc.), bio-chemical systems (gene expression, protein pathways), weather and climate pattern systems, etc. Examples of man-made or engineered dynamic systems include: a bouncing ball, a spring with a mass tied on an end, automobiles, airplanes, control systems in major appliances, communication networks, audio signal processors, nuclear reactors, a stock market.
Professionals from diverse areas such as engineering, science, education, and economics build mathematical models of dynamic systems in order to better understand system behavior as it changes with the progression of time. The mathematical models aid in building “better” systems, where “better” may be defined in terms of a variety of performance measures such as quality, time-to-market, cost, speed, size, power consumption, robustness, etc. The mathematical models also aid in analyzing, debugging and repairing existing systems (be it the human body or the anti-lock braking system in a car). The models may also serve the educational purpose of educating others on the basic principles governing physical systems. The models and results are often used as a scientific communication medium between humans. The term “model-based design” is used to refer to the use of graphical models in the development, analysis and validation of dynamic systems.
Dynamic systems are typically modeled in simulation environments as sets of differential, difference, and/or algebraic equations. At any given instant of time, these equations may be viewed as relationships between the system's output response (“outputs”), the system's input stimuli (“inputs”) at that time, the current state of the system, the system parameters, and time. The state of the system may be thought of as a numerical representation of the dynamically changing configuration of the system. For instance, in a physical system modeling a simple pendulum, the state may be viewed as the current position and velocity of the pendulum. Similarly, a signal-processing system that filters a signal would maintain a set of previous inputs as the state. The system parameters are the numerical representation of the static (unchanging) configuration of the system and may be viewed as constant coefficients in the system's equations. For the pendulum example, a parameter is the length of pendulum and for the filter example; a parameter is the values of the filter taps.
In practice, except for the most basic systems, mathematical models for dynamic systems involve a complex set of mathematical transformations applied in some prescribed manner with the outputs of some transformations forming the inputs of others. Each elemental transformation may be viewed in isolation as a simple dynamic system falling into one of the categories listed above. Therefore, a complex dynamic system may be modeled as an interconnection of various simple dynamic systems.
A schematic representation of such an interconnection that has evolved over the years is the graphical model. Such graphical models have now become a standard means in textbooks, design papers, journal articles, and specifications to communicate the details of a dynamic system's behavior. Various classes of graphical models describe computations that can be performed on computational hardware, such as a computer, microcontroller, FPGA, and custom hardware. Classes of such graphical models include time-based block diagrams, such as those found within Simulink® from The MathWorks, Inc. of Natick, Mass., state-based and flow diagrams, such as those found within Stateflow® from The MathWorks, Inc. of Natick, Mass., data-flow diagrams, circuit diagrams, and software diagrams, such as those found in the Unified Modeling Language (UML). A common characteristic among these various forms of graphical models is that they define semantics on how to execute the model.
Generally, graphical analysis and simulation methods, such as the block diagram method, are used in modeling for design, analysis, and synthesis of engineered systems. The visual representation allows for a convenient interpretation of model components and structure and provides a quick intuitive notion of system behavior. Block diagrams are a set of graphical connections between blocks to model a system. The individual blocks in a block diagram represent mathematical operations and output a result.
Conventional simulation models become more complex as models are developed that model more complex systems. Hundreds of thousands of blocks that represent primitive and aggregate mathematical operations may be present. To manage the complexity of such models, the principles of partitioning, abstraction, and hierarchy are applied.
In addition to graphical based modeling or simulation, other applications can be utilized to model a system. For example, MATLAB® provided by The MathWorks, Inc. of Natick, Mass., is an interactive programming and interpretive application that can implement a variety of computing tasks in engineering and science, while also having the ability to execute other executable programs. Some of the tasks that MATLAB® can perform range from data acquisition and analysis to application development. The MATLAB® environment integrates mathematical computing, visualization, and technical programming language. MATLAB® includes built-in interfaces that provide access and import data from instruments, files, and external databases and programs.
In addition, MATLAB® can integrate external routines written in C, C++, Fortran, and Java with MATLAB® applications. As such, MATLAB® provides an example of interactive programming and interpretive environments that can work in conjunction with C routines provided external to MATLAB® including those provided by third party providers.
MATLAB®, Simulink® and their family of products, such as Simulink® Control Design, Fixed-point Toolbox, Simulink® Fixed-point, Real-Time Workshop, Real-Time Workshop Embedded Coder, Stateflow® Coder, Simulink® Verification and Validation, Control System Toolbox, Robust Control Toolbox, etc., have been used to develop and analyze embedded control systems, which may include embedded control software and hardware. The control systems are sometimes embedded in mass production systems. One of the primary concerns in the mass production systems is to produce embedded control systems that have high functionality at a low cost.
One of the key cost considerations is the microprocessor (the price of which generally increases according to its word size). For example, 8-bit microprocessors are less expensive than 32-bit microprocessors. The execution speed of 8-bit microprocessors generally is, however, lower than that of more expensive 32-bit microprocessors. Therefore, it is desired to provide an analysis tool for determining the minimum digital computer system capability needed to satisfy overall system performance requirements.